
#ifndef __TEDEFS_H__
#define __TEDEFS_H__

#ifndef WIN32_LEAN_AND_MEAN
#define WIN32_LEAN_AND_MEAN
#endif

// Typedefs for unsigned
typedef unsigned char uchar;
typedef unsigned short ushort;
typedef unsigned int uint;
typedef unsigned long ulong;

//
// Other defines that determine how the project is compiled
//

// Determines if the program loads in data from the settings file
#define USE_SETTINGS

// Determines the bit mode for the direct3d buffers
#define BUFFER_BIT_32

// Determines how the engine class works
//#define FORCE_QUIT_AFTER_RENDER
#define USE_LIGHTS
#define USE_CULLING

// Determines the mode for rendering
#define SKIP_MENU
//#define DUAL_RENDER

// Determines how the Camera class is setup
#define NEAR_PLANE 0.1f
#define FAR_PLANE  5000.0f
#define MIN_ZOOM_FACTOR 1.0f
#define MAX_ZOOM_FACTOR 16.0f
#define NORMALIZE_ROTATIONS

// Determines if the entity class uses materials
#define USE_MATERIALS

// Determines if the player is shown in first person
#define FIRST_PERSON

// Determines the data that a Vertex has
#define USE_TEX
#define USE_COLOR

// Determines how mesh calculates things
#define USE_NORMALIZE_IN_CALCULATIONS

// Determines some of the limits of the SubdivisionGeom geometry
#define SUB_LEVEL_MAX 8
#define MAX_VERTICES 50000

// Direct3D helper macro
#define SAFE_RELEASE(p) { if(p) { (p)->Release(); (p)=NULL; } }

#endif // __TEDEFS_H__